iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
2
tags: PHP新手30天實戰金流, Laravel6

前言

資料來源:一次搞懂電商金流2017台灣電商產業地圖---金流篇

商家如果只是想要提供線上刷卡付款的功能,其實可以直接找各大銀行的「線上信用卡收單服務」,但要與銀行合作得先有一定的條件,而且 API 要一家ㄧ家銀行接,因此大多電商都會透過第三方來處理金流部分,這樣電商處理的業務較單純。不過,銀行入帳時間較為快速,一般約為 1-7 天內入帳;而金流公司約 7-14 天入帳。

電商流程

付款方式

  • 線上付款方式大致分為以下四類:
  1. 電子支付:信用卡、銀行帳戶轉帳、預先儲值等。專營電子支付機構:即非金融機構共 5 家,分別為 歐付寶、橘子支、國際連、智付寶、台灣支付 這 5 家廠商取得電子支付執照,其主管機關為金管會,受《電子支付機構管理條例》規範。
  2. 第三方支付 不可以轉帳、儲值
  3. 電子票證:悠遊卡等
  4. 行動支付(數位信用卡):遠端支付 (電子商務、行動商務) 和近端支付 (需要進行感應的支付方式,如 NFC 手機信用卡、Apple Pay)
  • 目前全台約有4785間第三方支付,卻只有5間電子支付:歐付寶(綠界)、橘子支付、國際連、智付寶、台灣支付。

    • 較大的三家公司:

      1. 紅陽:Web ATM即時付、ChinaPay銀聯卡支付、24Payment超商代收付機制 、BuySafe線上刷卡機制、EDC POS實體刷卡機、e'safe 實體刷卡機制/行動刷卡機制、MSTS全方位金流服務

      2. 藍新:EZpay台灣支付【網路商店金流(信用卡收款:Apple Pay/線上分期/定期定額/信用卡;非信用卡收款:7-11、全家、萊爾富、OK、實體ATM/網路ATM)、實體商店金流(虛擬刷卡機)、行動商務+社群商務】

      3. 綠界:信用卡、ATM櫃員機/網路ATM、超商條碼/代碼(支援7-ELEVEN、全家、萊爾富、OK)

聽說綠界介接較簡易,我們就先從綠界開始吧!今天先下載安裝,讀點文件就好!

綠界

  • 註冊綠界會員

  • 下載SDK

  • API文件

  • 基本應用的主要流程:
    Step 1. 將訂單資料以 POST(HTTP Method)傳送至綠界
    Step 2. 取號結果通知
    1. 從網址[PaymentInfoURL]接收取號結果,並判斷檢查碼是否相符
    2. 檢查碼相符後,於網頁端回應 1|OK
    Step 3. 付款結果通知
    1. 從網址(ReturnURL)接收付款結果,並判斷檢查碼是否相符
    2. 檢查碼相符後,於網頁端回應 1|OK

  • 產生訂單的使用方式參考:

try {
    $obj = new ECPay_AllInOne();
    $obj->ServiceURL  = Config::ECPAY_API_URL;
    $obj->HashKey     = Config::ECPAY_HASH_KEY;
    $obj->HashIV      = Config::ECPAY_HASH_IV;
    $obj->MerchantID  = Config::ECPAY_MERCHANT_ID;
    $obj->Send['ReturnURL'] = Config::ECPAY_CALLBACK_URL; //付款完成通知回傳的網址
    $obj->Send['MerchantTradeNo']   = $order_id;
    $obj->Send['MerchantTradeDate'] = date('Y/m/d H:i:s'); //交易時間
    $obj->Send['TotalAmount']       = (int)$order_total;   //交易金額
    $obj->Send['TradeDesc']         = "商店訂購商品,訂單編號:".$order_id;                
    $obj->Send['NeedExtraPaidInfo'] = 'Y'; //額外的付款資訊(消費者信用卡末四碼)
    if ($order_payment_option== 'credit_card') 
    { 
        // CREDIT CARD
        $obj->Send['OrderResultURL']    = $returnUrl;//付款完成導回平台的網址
        $obj->Send['ChoosePayment'] = ECPay_PaymentMethod::Credit;
    } else if ($order_payment_option == 'atm') {
        // ATM
        $ClientRedirectURL = Config::BASE_URL;
        $obj->SendExtend['ExpireDate'] = 7; // 最短 3 天 最長 60 天
        $obj->SendExtend['ClientRedirectURL'] = $ClientRedirectURL;
        $obj->Send['ChoosePayment'] = ECPay_PaymentMethod::ATM;
    } else {
        return null;
    }
    /*  當 付款方式 [ChoosePayment] 為 ALL 時,可隱藏不需要的付款方式,多筆請以井號分隔(#)。
        可用的參數值:
        Credit:信用卡
        WebATM:網路 ATM
        ATM:自動櫃員機
        CVS:超商代碼
        BARCODE:超商條碼 */
    $obj->Send['EncryptType'] = 1;

    //訂單的商品資料
    array_push($obj->Send['Items'], array(
        'Name'  => "商品名稱",
        'Price'  => (int)1000,
        'Currency'  => "元",
        'Quantity'  => (int) "1",
        'URL'  => ""));

    //產生訂單(auto submit至ECPay)
    $obj->CheckOut();
} catch (Exception $e) {
    echo $e->getMessage();
}

明天要來串接囉!

晚生學習分享所學經驗,若內容有誤或不清楚,煩請不吝指教!更是歡迎各位大神多多補充,感謝萬分!


上一篇
[Day7] Laravel 架構理解( IoC, Service Provider)
下一篇
[Day9] 金流平台的主要函式之概觀
系列文
PHP新手30天實戰金流34
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Darwin Watterson
iT邦好手 1 級 ‧ 2019-10-24 17:33:43

最近要跟高層報告印度paytm支付的優劣性, 您這邊的綠界API文件真的幫了我大忙 !
/images/emoticon/emoticon02.gif
讓我能生出一篇 印度paytm vs 中國支付寶 vs 台灣綠界 的支付比較報告, 感謝您 !
/images/emoticon/emoticon41.gif
有意來台中找 php 工作可私我 ! 3Q
/images/emoticon/emoticon32.gif

我要留言

立即登入留言